import os
import shutil


def find_and_copy_missing_files(folder_a, folder_b, folder_c):
    # 确保目标目录存在
    os.makedirs(folder_c, exist_ok=True)

    # 获取 B 文件夹中所有文件名（不包含路径）
    files_b = os.listdir(folder_b)

    # 遍历 B 文件夹中的每个文件
    for filename_b in files_b:
        # 构造 A 文件夹中预期的文件名（添加 detect_ 前缀）
        expected_filename_a = "detect_" + filename_b

        # 检查 A 文件夹中是否存在该文件
        if not os.path.exists(os.path.join(folder_a, expected_filename_a)):
            # 如果不存在，则复制 B 中的文件到 C 目录
            src_path = os.path.join(folder_b, filename_b)
            dst_path = os.path.join(folder_c, filename_b)
            shutil.copy2(src_path, dst_path)
            print(f"Copied: {filename_b}")


# 使用示例
if __name__ == "__main__":
    folder_a = "D:\TestPic\公司未戴头盔软件测试\imgsz=640, conf=0.5, iou=0.45-测试"  # A 文件夹路径
    folder_b = "D:\TestPic\公司未戴头盔软件测试\pic0910-公司未戴头盔软件-去重复"  # B 文件夹路径
    folder_c = "D:\TestPic\公司未戴头盔软件测试\imgsz=640, conf=0.5, iou=0.45-测试-未检测文件"  # 目标文件夹路径

    find_and_copy_missing_files(folder_a, folder_b, folder_c)